package com.kws.tool.service;

import com.kws.system.api.domain.*;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author :yxy
 * @date : 2024/11/26
 */
@Component
public interface ContractService {
    /**
     * 上传文件模板
     * @return
     */
    EQBTemplateVo saveContract(MultipartFile file);

    /**
     * 删除文件模板
     * @param docTemplateId
     * @return
     */
    Boolean deleteContract(String docTemplateId);

    /**
     * 根据模板id查询模板控件
     * @param docTemplateId
     * @return
     */
    ResultDto getComponentsInfo(String docTemplateId);

    /**
     * 填充模板--合同金额、甲方、乙方
     * @return
     */
    ResultDto createByDocTemplate(CreateTemplate createTemplate);

    /**
     * 创建合同并发起
     * @param createContractPo
     * @return
     */
    ResultDto createContract(CreateContractDto createContractPo);

    /**
     * 获取签署链接--查看合同--免登录，任何人可查看
     * @return
     */
    ResultDto signViewLink(String signFlowId);

    /**
     * 获取签署链接
     * @param querySignUrlRq
     * @return
     */
    ResultDto signLink(QuerySignUrlRq querySignUrlRq);

    /**
     * 文件下载地址
     * @param signFlowId
     * @return
     */
    ResultDto fileDownloadUrl(String signFlowId);

    /**
     * 查询签署流程列表
     * @return
     */
    ResultDto signFlowList(SignFlowRq signFlowRq);

    /**
     * 查询签署流程详情
     * @param signFlowId
     * @return
     */
    ResultDto signFlowDetail(String signFlowId);

    /**
     * 撤销签署流程
     * @param signFlowRevoke
     * @return
     */
    ResultDto signFlowRevoke(SignFlowRevoke signFlowRevoke);
}
